package main

import "fmt"

/*
p=&a
*p=10
*/
func changeValue(p *int) { //p拿到a的地址
	*p = 10 //对此地址的数据改为10  可以理解为 *p=a
}

/*
	func swapValue(a int, b int) {
		var tmp int
		tmp = a
		a = b
		b = tmp
	}
*/
func swapValue(pa *int, pb *int) {
	var tmp int
	tmp = *pa
	*pa = *pb
	*pb = tmp
}

func main() {
	var a int = 1
	//将a的地址给p,写法就是这个写法
	changeValue(&a)

	fmt.Println(a)

	var b int = 1
	var c int = 2
	swapValue(&b, &c)
	fmt.Println("b:c ", b, c)

	var p *int //一级指针
	p = &a

	var pp **int //二级指针
	pp = &p

	fmt.Println(p, &a)
	fmt.Println(pp, &p)
}
